package com.test.hello.controller;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * Created by lw on 2019/4/3.
 */
@Configuration
public class CorsConfig   {


//    @Override
//
//    public void addCorsMappings(CorsRegistry registry) {
//
//        registry.addMapping("/**")
//
//                .allowedOrigins("*")
//
//                .allowCredentials(true)
//
//                .allowedMethods("GET", "POST", "DELETE", "PUT")
//
//                .maxAge(3600);
//
//    }

    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1. 允许任何域名使用
        corsConfiguration.addAllowedHeader("*"); // 2. 允许任何头
        corsConfiguration.addAllowedMethod("*"); // 3. 允许任何方法（post、get等）
        corsConfiguration.setAllowCredentials(true); // 4. 允许 cookie 跨域
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4
        return new CorsFilter(source);
    }
}
